Ignore:
Timestamp:
12/01/16 12:43:03 (7 years ago)
Author:
frank.jaeger
Message:

Verbesserungen an der ALKIS-Buchauskunft (Geschwindigkeit, Fehlerkorrekturen, Mandantenfähigkeit) und an der Mapbender2-Navigation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/info/info/alkis/alkisfshist.php

    r372 r376  
    55        Flurstuecks-Historie fuer ein Flurstueckskennzeichen aus ALKIS PostNAS 
    66        Version: 
    7         2011-11-16 Zum aktuellen FS die VorgÀnger suchen 
    8         2011-11-17 Parameter der Functions geÀndert 
    9         2011-11-30 import_request_variables 
    10         2012-11-27 Function split deprecated: explode 
    11         2013-04-08 deprecated "import_request_variables" ersetzt 
    12         2014-09-15 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 
    13         2015-12-09 Austausch .ico durch .png 
     7        2016-02-24 Version fuer norGIS-ALKIS-Import 
     8        2016-11-29 HTML5, Gemeinsam genutzte Datenbanken ermöglichen (Filter Gemeinde) 
    149*/ 
    1510 
     
    3126function vornach($dbarr) { 
    3227// Datenbank-Array-Feld zeilenweise ausgeben als Selbst-Link 
    33         global $gkz, $idanzeige, $showkey; 
     28        global $gkz, $showkey; 
    3429        if ($dbarr == "") { 
    3530                echo "(keine)"; 
    3631        } else { 
    3732                $stri=trim($dbarr, "{}"); 
    38                 //$arr = split(",",$stri); 
    3933                $arr = explode(",",$stri); 
    4034                foreach($arr AS $val){ 
    4135                        echo "Flurst&uuml;ck <a title=' zur Flurst&uuml;ck Historie' href='".$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;fskennz=".$val; 
    42                         if ($idanzeige) {echo "&amp;id=j";} 
    4336                        if ($showkey)   {echo "&amp;showkey=j";} 
    4437                        echo "'>".fzerleg($val)."</a><br>"; 
     
    4942 
    5043function gemkg_name($gkey) { 
    51 // Schluessel wird uebergeben, Name in DB nachschlagen 
     44//      Schluessel wird ÃŒbergeben, Name dazu in der DB nachschlagen 
    5245        global $con; 
    53         $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;"; 
     46        $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 AND g.endet IS NULL LIMIT 1;"; 
    5447        $v=array($gkey); 
    5548        $res=pg_prepare("", $sql); 
     
    7265// Akt. FS hat keine Verweise auf Vorgaenger. Darum in den Nachfolger-Verweisen von Hist.-FS suchen. 
    7366// Problem: Dies sind Arrays, die nicht performant durchsucht werden koennen. 
    74         global $gkz, $con, $debug; 
     67        global $gkz, $con, $debug, $showkey, $filtkreis, $filtgem; 
    7568 
    7669        $wherecl="WHERE $1 = ANY (nachfolgerflurstueckskennzeichen) "; 
     
    10093                $vfsk=$rowv["flurstueckskennzeichen"]; 
    10194                echo "Flurst&uuml;ck <a title='Historie des Vorg&auml;ngerflurst&uuml;cks' href='".$_SERVER['PHP_SELF']."?gkz=".$gkz."&amp;fskennz=".$vfsk."&amp;gmlid=".$gmlv; 
    102                 if ($idanzeige) {echo "&amp;id=j";} 
    103                         if ($showkey)   {echo "&amp;showkey=j";} 
     95                        if ($showkey) {echo "&amp;showkey=j";} 
    10496                echo "'>".fzerleg($vfsk)."</a><br>"; 
    10597                $zv++; 
     
    116108if ($auth == "mapbender") {require_once($mapbender);} 
    117109include("alkisfkt.php"); 
    118 if ($id == "j") {$idanzeige=true;} else {$idanzeige=false;} 
    119110$keys = isset($_GET["showkey"]) ? $_GET["showkey"] : "n"; 
    120111if ($keys == "j") {$showkey=true;} else {$showkey=false;} 
    121112?> 
    122 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    123 <html> 
     113<!doctype html> 
     114<html lang="de"> 
    124115<head> 
    125         <meta name="author" content="b600352" > 
    126         <meta http-equiv="cache-control" content="no-cache"> 
    127         <meta http-equiv="pragma" content="no-cache"> 
    128         <meta http-equiv="expires" content="0"> 
    129         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     116        <meta charset="utf-8"> 
    130117        <title>ALKIS Flurst&uuml;cks-Historie</title> 
    131118        <link rel="stylesheet" type="text/css" href="alkisauszug.css"> 
     
    137124<body> 
    138125<?php 
    139 $con = pg_connect("host=".$dbhost." port=" .$dbport." dbname=".$dbname." user=".$dbuser." password=".$dbpass); 
     126$con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisfshist.php'"); 
    140127if (!$con) echo "<p class='err'>Fehler beim Verbinden der DB</p>\n"; 
    141 // if ($debug > 1) {echo "<p class='err'>DB=".$dbname.", user=".$dbuser."</p>";} 
    142128 
    143129// Such-Parameter bekommen? Welche? 
     
    147133        $whereclause="WHERE gml_id= $1 "; 
    148134        $v = array($gmlid); 
    149 } else {        // Alternativ: Flurst.-Kennz. uebergeben 
    150         if ($fskennz != "") { 
     135} elseif ($fskennz != "") { // Alternativ: Flurst.-Kennz. uebergeben 
    151136                $parmtyp="Flurst&uuml;ckskennzeichen"; 
    152137                $parmval=$fskennz; 
    153138                $whereclause="WHERE flurstueckskennzeichen= $1 "; // hinten auffuellen mit _ auf 20 Stellen 
    154139                $v = array($fskennz); 
    155         } else { // Pfui! 
     140} else { // Pfui! 
    156141                $parmtyp=""; 
    157142                echo "<p class='err'>Parameter 'gmlid' oder 'fskennz' fehlt.</p>"; 
    158         } 
    159143} 
    160144 
    161145if ($parmtyp != "") { // einer der beiden erlaubten FÀlle 
    162         // UNION-Abfrage auf 3 Àhnliche Tabellen, darin aber immer nur 1 Treffer. 
    163  
    164         $felder="gml_id, flurnummer, zaehler, nenner, flurstueckskennzeichen, amtlicheflaeche, zeitpunktderentstehung, gemarkungsnummer, "; 
    165  
    166         $sqlu ="SELECT 'a' AS ftyp, ".$felder."null AS nach, null AS vor, null AS \"name\" FROM ax_flurstueck f ".$whereclause." AND f.endet IS NULL " 
    167         ."UNION SELECT 'h' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueck h ".$whereclause." AND h.endet IS NULL " 
    168         ."UNION SELECT 'o' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueckohneraumbezug o ".$whereclause." AND o.endet IS NULL;"; 
     146        // UNION-Abfrage auf 3Àhnliche Tabellen, darin aber immer nur 1 Treffer. 
     147        // norGIS: unterschiedliche Formate der gleichen Spalten, Typumwandlung "cast" verwenden. 
     148 
     149        $felder="gml_id, flurnummer, cast(zaehler AS character varying), cast(nenner AS character varying), flurstueckskennzeichen, amtlicheflaeche, zeitpunktderentstehung, gemarkungsnummer, "; 
     150 
     151        if ($filtgem == '') { // Filter Gemeinde ? 
     152                $wheref=''; 
     153                $whereh=''; 
     154                $whereo=''; 
     155        } else { // ZusÀtze zur WHERE-Clausel 
     156                $wheref=" AND f.kreis = '".$filtkreis."' AND f.gemeinde = '".$filtgem."' "; 
     157                $whereh=" AND h.kreis = '".$filtkreis."' AND h.gemeinde = '".$filtgem."' "; 
     158                $whereo=" AND o.gemeinde = '".$filtgem."' "; 
     159        } 
     160 
     161        $sqlu ="SELECT 'a' AS ftyp, ".$felder."null AS nach, null AS vor, null AS \"name\" FROM ax_flurstueck f ".$whereclause.$wheref." AND f.endet IS NULL " 
     162        ."UNION SELECT 'h' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueck h ".$whereclause.$whereh." AND h.endet IS NULL " 
     163        ."UNION SELECT 'o' AS ftyp, ".$felder."nachfolgerflurstueckskennzeichen AS nach, vorgaengerflurstueckskennzeichen AS vor, name FROM ax_historischesflurstueckohneraumbezug o ".$whereclause.$whereo." AND o.endet IS NULL;"; 
    169164 
    170165        $resu = pg_prepare("", $sqlu); 
     
    188183                if ($gmlid == "") {$gmlid=$rowu["gml_id"];} // fuer selbst-link-Umschalter ueber footer 
    189184        } else { 
    190                 if ($debug > 1) {echo "<br><p class='err'>Fehler! Kein Treffer f&uuml;r ".$parmtyp." = '".$parmval."'</p><br>";} 
    191                 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sqlu."<br>$1=".$parmtyp." = '".$parmval."'</p>";} 
     185                if ($debug > 1) { 
     186                        echo "<br><p class='err'>Fehler! Kein Treffer f&uuml;r ".$parmtyp." = '".$parmval."'</p><br>"; 
     187                        if ($debug > 2) { 
     188                                echo "<p class='dbg'>SQL=<br>".$sqlu."<br>$1=".$parmtyp." = '".$parmval."'</p>"; 
     189                        } 
     190                } 
    192191        } 
    193192} 
     
    222221echo "\n<table class='outer'>\n<tr>\n\t<td>"; // linke Seite 
    223222        // darin Tabelle Kennzeichen 
    224         echo "\n\t<table class='".$cls."' title='Flurst&uuml;ckskennzeichen'>\n\t<tr>"; 
    225                 echo "\n\t\t<td class='head'>Gmkg</td>\n\t\t<td class='head'>Flur</td>\n\t\t<td class='head'>Flurst-Nr.</td>\n\t</tr>"; 
    226                 echo "\n\t<tr>\n\t\t<td title='Gemarkung'>"; 
     223        echo "\n\t<table class='".$cls."' title='Flurst&uuml;ckskennzeichen'>\n\t<tr>" 
     224                ."\n\t\t<td class='head'>Gmkg</td>\n\t\t<td class='head'>Flur</td>\n\t\t<td class='head'>Flurst-Nr.</td>\n\t</tr>" 
     225                ."\n\t<tr>\n\t\t<td title='Gemarkung'>"; 
    227226                if ($showkey) {echo "<span class='key'>".$gmkgnr."</span><br>";} 
    228                 echo $gemkname."&nbsp;</td>"; 
    229                 echo "\n\t\t<td title='Flurnummer'>".$flurnummer."</td>"; 
    230                 echo "\n\t\t<td title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>\n\t</tr>"; 
    231         echo "\n\t</table>"; 
    232 echo "\n\t</td>\n\t<td>"; // rechte Seite 
     227                echo $gemkname."&nbsp;</td>" 
     228                ."\n\t\t<td title='Flurnummer'>".$flurnummer."</td>" 
     229                ."\n\t\t<td title='Flurst&uuml;cksnummer (Z&auml;hler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>\n\t</tr>" 
     230        ."\n\t</table>" 
     231."\n\t</td>\n\t<td>"; // rechte Seite 
    233232        // FS-Daten 2 Spalten 
    234         echo "\n\t<table class='fsd'>"; 
    235                 echo "\n\t<tr>\n\t\t<td>Entstehung</td>"; 
    236                         echo "\n\t\t<td>".$entsteh."</td>"; 
    237                 echo "\n\t</tr>"; 
    238                 echo "\n\t<tr>"; 
    239                         echo "\n\t\t<td>letz. Fortf</td>"; 
    240                         echo "\n\t\t<td title='Jahrgang / Fortf&uuml;hrungsnummer - Fortf&uuml;hrungsart'>"; 
     233        echo "\n\t<table class='fsd'>" 
     234                ."\n\t<tr>\n\t\t<td>Entstehung</td>" 
     235                        ."\n\t\t<td>".$entsteh."</td>" 
     236                ."\n\t</tr>\n\t<tr>" 
     237                        ."\n\t\t<td>letz. Fortf</td>" 
     238                        ."\n\t\t<td title='Jahrgang / Fortf&uuml;hrungsnummer - Fortf&uuml;hrungsart'>"; 
    241239                                foreach($arrn AS $val) { // Zeile f. jedes Element 
    242240                                        echo trim($val, '"')."<br>"; 
    243241                                } 
    244                         echo "</td>"; 
    245                 echo "\n\t</tr>"; 
    246         echo "\n\t</table>"; 
    247         if ($idanzeige) {linkgml($gkz, $gmlid, "Flurst&uuml;ck", "ax_flurstueck"); } 
    248 echo "\n\t</td>\n</tr>\n</table>"; 
     242                        echo "</td>" 
     243                ."\n\t</tr>" 
     244        ."\n\t</table>" 
     245."\n\t</td>\n</tr>\n</table>"; 
    249246 
    250247if ($ftyp == "a") { // Aktuell -> Historie 
    251         echo "\n<p class='nwlink noprint'>weitere Auskunft: "; 
    252                 echo "<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."&amp;eig=n"; 
    253                         if ($idanzeige) {echo "&amp;id=j";} 
     248        echo "\n<p class='nwlink noprint'>weitere Auskunft: " 
     249                ."<a href='alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$gmlid."&amp;eig=n"; 
    254250                        if ($showkey)   {echo "&amp;showkey=j";} 
    255                         echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck "; 
    256                         echo "<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>"; 
    257                 echo "</a>"; 
    258 } 
    259 echo "\n<hr>"; 
    260  
    261 echo "<table class='outer'>"; 
    262         echo "\n<tr> 
     251                        echo "' title='Flurst&uuml;cksnachweis'>Flurst&uuml;ck " 
     252                        ."<img src='ico/Flurstueck_Link.png' width='16' height='16' alt=''>" 
     253                ."</a>"; 
     254} 
     255echo "\n<hr>" 
     256."<table class='outer'>" 
     257        ."\n<tr> 
    263258                <td class='head'>Flurst&uuml;ck</td> 
    264259                <td class='head'>Vorg&auml;nger</td> 
     
    267262         
    268263        // Spalte 1: F l u r s t ÃŒ c k 
    269         echo "\n<tr>\n\t<td>"; 
    270                 echo "<img src='ico/".$ico."' width='16' height='16' alt=''> ".$wert; 
    271                 echo "<br>Fl&auml;che <span class='flae'>".$flae."</span>"; 
    272         echo "</td>"; 
     264        echo "\n<tr>\n\t<td>" 
     265                ."<img src='ico/".$ico."' width='16' height='16' alt=''> ".$wert 
     266                ."<br>Fl&auml;che <span class='flae'>".$flae."</span>" 
     267        ."</td>"; 
    273268 
    274269        // Spalte 2: V o r g À n g e r 
     
    294289        echo "\n\t<td>"; 
    295290                vornach($nach); 
    296         echo "</td>\n</tr>"; 
    297 echo "\n</table>"; 
     291        echo "</td>\n</tr>" 
     292."\n</table>"; 
    298293 
    299294if ($debug > 1) { 
     
    307302?> 
    308303 
    309 <form action=''> 
    310         <div class='buttonbereich noprint'> 
    311                 <hr> 
    312                 <a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp; 
    313                 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>&nbsp; 
    314         </div> 
    315 </form> 
     304<div class='buttonbereich noprint'> 
     305<hr> 
     306        <a title="zur&uuml;ck" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zur&uuml;ck"></a>&nbsp; 
     307        <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a>&nbsp; 
     308</div> 
    316309 
    317310<?php footer($gmlid, $_SERVER['PHP_SELF']."?", ""); ?> 
Note: See TracChangeset for help on using the changeset viewer.